home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
301-325
/
disk_321
/
ifs
/
ifsout.doc
< prev
next >
Wrap
Text File
|
1992-05-06
|
9KB
|
175 lines
AMIGA IFSOUT Version 1.5
An Iterated Function System Viewer
Released to the public domain by the Software Glen Co.
INTRODUCTION
------------
IFSOUT graphically displays iterated function systems and allows the
user to interactively create the affine functions that define such
systems. An IFS can represent complex pictures very compactly. Simple
IFSs can describe an infinite number of different and interesting fractal
displays. Some of these pictures are remenisent of plants, ferns,
bushes, trees, snails, shells, sunsets and other natural objects, plus
a number of other interesting patterns. Included with the program are a
number of displays that the author and others have discovered. These are in
a directory named coors.
What is an iterated function system (IFS)? An IFS is a set of functions
that define transformations on a Cartesian space. Each of these functions
is a rule of affine transformation. An affine function has the form of:
W(x,y) = (Ax + By + E, Cx + Dy + F)
where:
A,B,C,D,E,F are real number transformation coefficients.
So an affine function maps each point in the Cartesian Space to another
point in the Cartesian Space. To compute an IFS image each affine
function is randomly applied to the last computed point. This process
is repeated over and over, resulting in a picture of the IFS as those
points are displayed.
THE PROGRAM - TUTORIAL
--- ------- --------
Ifsout is simple to use. To run ifsout, just double click on the
ifsout icon, or type ifsout in a CLI shell (stack should be > 30000).
Ifsout takes no arguements. Ifsout creates its own screen and begins
to display a default function, a small flower. Before starting, you
should know how to get back to the previous screen (usually the Workbench).
To do so, use the Project Menu and click on the "Back to WB" box There
are no Front/Back gadgets, but there is a hidden Close gadget in the
normal left-hand corner. It almost goes without saying, to quit, click
on the "quit" box in the Project menu.
Try some different functions. Use the Project Menu and click on the
"Get IFS" menu. This will bring up a file requester like window to allow
selection of a number of "coors" (IFS coordinate files) files. No, it
has no relationship to the beer! Thanks goes to C. Heath for the
file browser requester. It expects to find a coors directory on the
current default device. (i.e. if you started ifsout from RAD: it would
expect to find a coors directory in RAD:) If there is no directory
there you will get a "Wrong Diskett?" message. If this happens,
just click on OK and type in the path of your "coors" directory in the
Get File Requester string gadget. Included with this distribution is a
coors directory with all the IFSs in separate files.
The displaying of the transformation numbers (those are the coefficients
of the functions) can be toggled by clicking on the "Numbers" box
in the "Control" Menu. The eight numbers displayed for each affine
function are:
function number, A, B, C, D, E, F coefficients, percentage
The coefficients are the ones in the above defined affine function. The
percentage is the probability that the function will be randomly chosen.
The sum of all the probabilities should total 1.00 or some functions
will not get exercised as they should.
Try to change the function using the transformation boxes. Click on the
"Boxes" box in the "Control" Menu. This will bring up a number
of boxes. Each box represents a transformation function. One can change
the function by grabbing a corner of any box. Note: If two boxes'
corners are in the same position as the "selected" function (highlighted
in white) will be moved. One can change the "selected" function by
clicking the left-mouse button away from the boxes when the boxes are
showing.
Notice that the corner with the small box control the E and F coefficients
of the function, the opposite corner controls a combination of the A and D
cofficients, the near corner (the one with the small box) controls
a combination of A and C coefficients, and the other corner (the one
opposite of the small triangle) controls a combination of the B and D
cofficients. The small box is used to determine the orientation of
the transformation. The program can display a IFS with 25 or less
affine transformations.
Take a look at Sierpinski's Triangle by selecting the "Get IFS" menu
function and selecting sier.coors file. This function takes three
transforms. As you can see the images look as if they are "developing".
Some images look better if they "cook" longer and other look best when
they have only "cooked" for a short time.
Sometimes the function might disappear from your view as you are
manipulating them. This is because the coefficients can also change
the location of display. To get the image back into a viewing position
select the "Zoom To Fit" box in the Functions menu. This not only centers
the image but sizes it to about 85% of screen size. This function
can also be used to make a very small/large image larger/smaller. Also
in the "Functions" menu there is another to contol the scale of the
display. It is called "Zoom Out X 2" and should be self-explainatory.
Try some of the miscellanous functions. If you have received the "paid-for"
version you can save the functions that you create. To save your function
click on the "Save IFS" box in the Projects menu. Your function will
be saved with the name you specify. Another toggle allows you to create
a white background. You can also get a new function. The coeffiecents
of the new function are set to A, D, = 1 and the rest = 0. This does not
effect the outcome of the current IFS except to add a new color and to change
the percentage of the functions fo the IFS display. Notice that each
affine function has its own color. You can change the color of the
functions displayed by clicking the left mouse button when the boxes are
NOT displayed. The colors are selected at random.
There is also a pause toggle. IFSOUT program is rather compute intensive.
The pause toggle allows the program to go to sleep until it is toggled again.
This allows the processor to do other things quicker (like capturing the
screen with any of the screensaving programs). NOTE: BE CAREFUL WITH THIS
SWITCH as it makes the program look dead and unresponsive to any requests
except some menu selections (like the toggle itself and the QUIT funciton).
Another way to change the coeficients is by the use of the "Adjust
Functions" requester which can be found in the Functions menu. The Adjust
Functions requester consists of four areas of control.
The first method of control is the current function's coeficients. These
are changeable. You can request additional functions by typing in a
function number (WN) lager than the current number of functions. If you
type in a function less than the current number of functions, it will give
you that function.
The second area of control is the horizonal slider gadgets next to the
function number, coeficients and percent text input areas. They also
control the same functions as the text input areas. To change a function
number just click on either side of the slider. This slider does not
allow you to add additional functions but is very useful in tracking down
a function (by number) quickly.
The third area of control is the Zoom Slider. It allows you to Zoom in
(down) or out (up) a particular IFS.
The fourth area of control is the Positioner Gadget. This allows you to
position the current IFS on the screen. Sometimes when you are Zooming
into the function it changes the center. This allows you to center it
to your preverance.
A tip: If you have the version that allows saving IFSs you can create
a directory named coors in your RAD or RAM disk for rapid saving of IFS
functions.
THE CHALLENGE
--- ---------
Get the file glen.coors. Notice that I have defined my name as an IFS.
Not a real easy task, but as you can see it can be done. Can you create
an IFS for your name?
I would also like to hear from you if you find any new and interesting
IFSs. My email address is fullmer@alfalfa.sps.mot.com.
I hope you have as much fun with this as I have. There would probably
be many more program features if searching for new IFSs wasn't so
distracting! Enjoy.